package com.zpark.se.io.file;

import java.io.File;
import java.io.IOException;

/*
 *  File类常用方法
 */
public class Demo02 {
    public static void main(String[] args) throws IOException {
        // 创建文件对象
        File f = new File("src/com/zpark/se/io/file/f");

        /*
         *  boolean canRead(): 判断文件是否可读，可读：返回true，否则返回false
         */
        boolean b = f.canRead();
        System.out.println(b);

        /*
         *  boolean canExecute(): 判断文件是否可执行，
         * 当且仅当抽象路径名存在且允许应用程序执行该文件时为True
         */
        boolean b1 = f.canExecute();
        System.out.println(b1);

        /*
         *  boolean canWrite(): 判断文件是否可写，可写：返回true，否则返回false
         */
        boolean b2 = f.canWrite();
        System.out.println(b2);

        /*
         *  int compareTo(File pathname): 比较两个文件
         * 如果参数等于这个抽象路径名，则为零；如果这个抽象路径名按字典顺序小于参数，
         * 则为小于零的值；如果这个抽象路径名按字典顺序大于参数，则为大于零的值
         */
        int i = f.compareTo(new File("src/com/zpark/se/io/file/f"));
        System.out.println(i);

        // 创建d1.txt文件对象
        File d1 = new File(f, "d1.txt");
        /*
         boolean createNewFile(): 当且仅当具有该名称的文件不存在时，创建一个新的空文件
         */
        boolean newFile = d1.createNewFile();
        System.out.println(newFile);

        /*
         boolean delete(): 删除此抽象路径名表示的文件或目录
         删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录，则该目录必须为空才能删除。
        请注意，java.nio.file.Files类定义了delete方法，用于在文件无法删除时抛出IOException。
        这对于错误报告和诊断为什么不能删除文件很有用。

        注意：如果file对象为文件，则可以直接删除，如果为目录则需要目录为空才能删除
         */
        File d = new File("src/com/zpark/se/io/file/d");
        boolean delete = d.delete();
        System.out.println(delete);
    }
}
